home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Source Code / C ++ / Applications / FlyThrough 1.1.2 / src / Source / QD3D General Tools / StQD3DInitializer.h < prev   
Encoding:
C/C++ Source or Header  |  1997-05-14  |  1.2 KB  |  64 lines  |  [TEXT/CWIE]

  1. //
  2. //    StQD3DInitializer.h
  3. //
  4. //    A stack-based class to initialize and clean up a QuickDraw 3D environment.
  5. //    Declare it in main() after your toolbox initialization.
  6. //
  7. //    by James Jennings
  8. //    November 12, 1995
  9. //
  10. //    Note: The names of the gestalt codes are different 
  11. //    from what's in the documentation.
  12. //
  13.  
  14. #pragma once
  15.  
  16. #include <QD3D.h>
  17.  
  18. class StQD3DInitializer {
  19. public:
  20.     StQD3DInitializer(void);
  21.     ~StQD3DInitializer(void);
  22.     TQ3Status GetStatus(void);
  23.     Boolean HasQD3D(void);
  24. private:
  25.     TQ3Status status;
  26. };
  27. /*
  28. inline
  29. Boolean StQD3DInitializer::HasQD3D(void)
  30. {
  31. #if 1    // there are two ways to test this
  32.     long result;
  33.     OSErr err = ::Gestalt(gestaltQD3D, &result);
  34.     return (err == noErr) && (result == gestaltQD3DAvailable);
  35. #else
  36.     return ((Boolean) Q3Initialize != kUnresolvedSymbolAddress);
  37. #endif
  38. }
  39.  
  40. inline
  41. StQD3DInitializer::StQD3DInitializer(void)
  42.     : status(kQ3Failure)
  43. {
  44.     if (!HasQD3D()) return;    // Throw exception?
  45.     status = ::Q3Initialize();
  46.     if (status == kQ3Failure) 
  47.         SignalPStr_("\pQuickDraw 3D is not available.");
  48. }
  49.  
  50. inline
  51. StQD3DInitializer::~StQD3DInitializer(void)
  52. {
  53.     if (status==kQ3Success)
  54.         status = ::Q3Exit();
  55. //    if (status == kQ3Failure) // Throw exception?
  56. }
  57.  
  58. inline
  59. TQ3Status StQD3DInitializer::GetStatus(void)
  60. {
  61.     return status;
  62. }
  63. */
  64.